Machine learning techniques have recently grown in prominence—they are frequently employed for mobile applications, as well as for data analysis in back-end data centers. Architectures that are optimized for machine learning techniques, e.g., convolutional neural networks (CNNs) and the more general deep neural networks (DNNs), can therefore have high impact. Machine learning techniques are amenable to acceleration because of the high degree of compute parallelism. Machine learning techniques, such as those involving convolutional CNNs and DNNs, typically involve a large number of multiply-accumulate (i.e., dot product) operations. The dominant data structures in CNNs and DNNs are the synaptic weight matrices that define each neuron layer.